#Boa:Dialog:Buscaclientes

import wx
import consultasBD
import Ventas


def create(parent):
    return Buscaclientes(parent)

[wxID_BUSCACLIENTES, wxID_BUSCACLIENTESIDBUSQUEDA, wxID_BUSCACLIENTESLIMPIAR, 
 wxID_BUSCACLIENTESLISTBOX1, wxID_BUSCACLIENTESSTATICTEXT1, 
 wxID_BUSCACLIENTESTEXTOBUSCADO, 
] = [wx.NewId() for _init_ctrls in range(6)]

class Buscaclientes(wx.Dialog):
    idcliente = 0
    def _init_ctrls(self, prnt):
        # generated method, don't edit
        wx.Dialog.__init__(self, id=wxID_BUSCACLIENTES, name='Buscaclientes',
              parent=prnt, pos=wx.Point(323, 127), size=wx.Size(412, 473),
              style=wx.DEFAULT_DIALOG_STYLE, title='Busca Clientes')
        self.SetClientSize(wx.Size(404, 446))
        self.SetToolTipString('Busca Clientes')

        self.listBox1 = wx.ListBox(choices=[], id=wxID_BUSCACLIENTESLISTBOX1,
              name='listBox1', parent=self, pos=wx.Point(8, 40),
              size=wx.Size(392, 400), style=0)
        self.listBox1.Bind(wx.EVT_LISTBOX_DCLICK, self.OnListBox1ListboxDclick,
              id=wxID_BUSCACLIENTESLISTBOX1)

        self.textobuscado = wx.TextCtrl(id=wxID_BUSCACLIENTESTEXTOBUSCADO,
              name='textobuscado', parent=self, pos=wx.Point(56, 8),
              size=wx.Size(224, 21), style=0, value='')

        self.limpiar = wx.Button(id=wxID_BUSCACLIENTESLIMPIAR, label='Limpiar',
              name='limpiar', parent=self, pos=wx.Point(288, 8),
              size=wx.Size(75, 23), style=0)
        self.limpiar.SetToolTipString('Limpiar')
        self.limpiar.Bind(wx.EVT_BUTTON, self.OnLimpiar,
              id=wxID_BUSCACLIENTESLIMPIAR)

        self.idbusqueda = wx.TextCtrl(id=wxID_BUSCACLIENTESIDBUSQUEDA,
              name='idbusqueda', parent=self, pos=wx.Point(376, 8),
              size=wx.Size(24, 21), style=0, value='')
        self.idbusqueda.Show(True)

        self.staticText1 = wx.StaticText(id=wxID_BUSCACLIENTESSTATICTEXT1,
              label='Nombre', name='staticText1', parent=self, pos=wx.Point(8,
              8), size=wx.Size(37, 13), style=0)

    def __init__(self, parent):
        self._init_ctrls(parent)
        self.hallado = 0

    def hacebusquedanombre(self,nombre,codigo,direccion="",telefono="",email="", nrodoc="", clubs=""):
        nombre_sql = ""
        if nombre != "": nombre_sql = "AND nombre LIKE '%%%s%%'" % nombre
        telefono_sql = ""
        if telefono != "": telefono_sql = "AND telefono LIKE '%%%s%%'" % telefono
        direccion_sql = ""            
        if direccion != "": direccion_sql = "AND direccion LIKE '%%%s%%'" % direccion
        email_sql = ""
        if email != "": email_sql = "AND email LIKE'%%%s%%'" % email
        nrodoc_sql = ""
        if nrodoc != "": nrodoc_sql = "AND nrodoc LIKE'%%%s%%'" % nrodoc
        tarjetasussan = ""
        if clubs!="": tarjetasussan = "AND tarjetasussan LIKE'%%%s%%'" % clubs
            
        if codigo == "":
            r1 = "SELECT * FROM cliente \n"
            r2 = "WHERE 1=1 %s %s %s %s %s %s " % (nombre_sql, telefono_sql, direccion_sql,email_sql,nrodoc_sql,tarjetasussan)
            r3 = "ORDER BY nombre ASC \n"
            sql = r1+r2+r3
        else:
            sql = "SELECT * FROM cliente WHERE idcliente='%s' ORDER BY nombre ASC" % (codigo)
        
        resultado = consultasBD.ordenCruda(sql)

        for r in resultado:
            self.listBox1.Append(str(r[1])+' / '+str(r[0]))
            self.limpiar.Enable(True)
            self.limpiar.SetLabel("Limpiar")

        self.hallado = 0
        if len(resultado)==1:
            r = resultado[0]
            self.id = r[0]
            self.idcliente = self.id
            self.listBox1.SetSelection(0)
            self.hallado = 1
        
    def OnListBox1ListboxDclick(self, event):
        item = self.listBox1.GetStringSelection()
        self.id = item.split(" / ")
        self.idbusqueda.ChangeValue(str(self.id[1]))
        self.idcliente = self.id[1]
        self.Close() 

    def Muestraid(self):
        return str(self.idcliente)

    def OnLimpiar(self, event):
        if self.limpiar.GetLabel()=="Limpiar":
            self.limpiar.SetLabel("Buscar")
            self.textobuscado.SetLabel("")
            self.listBox1.Clear()
            self.textobuscado.SetFocus()
            return
        nombre = self.textobuscado.GetLabel()
        self.hacebusquedanombre(nombre,"","","","")
        self.listBox1.SetFocus()
        
    def getHallado(self):
        return self.hallado
    
